草庐IT

c++ - 更改或检查 std::ofstream 的打开模式

全部标签

ruby - 检查类上是否定义了方法

如何检查某个方法是否直接在某个类上定义,而不是通过继承或包含/扩展?我想要类似“foo?”的东西在以下内容中:classAdefa;endendmoduleBdefb;endendclassCfalseC.foo?(:b)#=>falseC.foo?(:c)#=>true 最佳答案 使用这个:C.instance_methods(false).include?(:a)C.instance_methods(false).include?(:b)C.instance_methods(false).include?(:c)instance

ruby - 另一种方法而不是转义正则表达式模式?

通常当我的正则表达式模式看起来像这样时:http://www.microsoft.com/然后我必须像这样逃避它:string.match(/http:\/\/www\.microsoft\.com\//)有没有其他方法而不是像那样转义它?我希望能够像这样使用它http://www.microsoft.com,因为我不想转义所有模式中的所有特殊字符。 最佳答案 Regexp.new(Regexp.quote('http://www.microsoft.com/'))Regexp.quote简单地转义任何具有特殊正则表达式含义的字符;

ruby - 如何更改数组元素的位置?

我有一个关于如何更改数组元素的索引的问题,这样它就不会出现在第7个位置,而是出现在第2个位置...是否有处理此问题的函数? 最佳答案 没有比这更简单的了:array.insert(2,array.delete_at(7)) 关于ruby-如何更改数组元素的位置?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4733925/

ruby-on-rails - Ruby,检查日期是否是周末?

我的Rails应用程序中有一个DailyQuote模型,它具有股票的日期和价格。数据库中的数据已为此模型捕获,包括周末。周末价格值已设置为0。我想将周六和周日的所有周末价格更改为周五的价格。在Ruby中执行此操作的最佳方法是什么?要确定日期是星期六还是星期日并将其值更改为该周末的星期五? 最佳答案 TFM展示了一种识别星期几的有趣方法:t=Time.nowt.saturday?#=>returnsabooleanvaluet.sunday?#=>returnsabooleanvalue

ruby-on-rails - 更改 rvm 使用的 rails 版本

这是我本地的珍宝:$gemlist***LOCALGEMS***actionmailer(4.0.0,3.2.14)actionpack(4.0.0,3.2.14)activemodel(4.0.0,3.2.14)activerecord(4.0.0,3.2.14)activerecord-deprecated_finders(1.0.3)activeresource(3.2.14)activesupport(4.0.0,3.2.14)arel(4.0.0,3.0.2)atomic(1.1.13)builder(3.1.4,3.0.4)bundler(1.3.5)bundler-unl

ruby-on-rails - 如何在不重复 nil 检查的情况下避免嵌套哈希中缺少元素的 NoMethodError?

我正在寻找一种避免在深度嵌套的哈希中的每个级别检查nil的好方法。例如:name=params[:company][:owner][:name]ifparams[:company]&¶ms[:company][:owner]&¶ms[:company][:owner][:name]这需要三项检查,并且代码非常丑陋。有什么办法可以解决这个问题? 最佳答案 引入了Ruby2.3.0amethodcalleddig在Hash和Array上。name=params.dig(:company,:owner,:name)如果在任

ruby - 如何优雅地检查 RSpec 中记录的存在

有没有更好的方法来检查RSpec中是否存在记录?Foo.where(bar:1,baz:2).count.should==1 最佳答案 与Rspec2.13.0,我能够做到Foo.where(bar:1,baz:2).shouldexist编辑:Rspec现在有anexpectsyntax:expect(Foo.where(bar:1,bax:2)).toexist 关于ruby-如何优雅地检查RSpec中记录的存在,我们在StackOverflow上找到一个类似的问题:

ruby - 为什么我不能让 swig wrap std::vector 到 Ruby 类?

我有一个带有嵌入式Ruby解释器的应用程序,以及与swig生成的STL类的接口(interface)。多亏了swig,几乎所有事情都进行得很好,除了一件事:%moduleStuff%import"std_vector.i"namespacestd{%template(Vectord)vector;};%inline%{std::vectortest;%}当我尝试在Ruby中使用它时,类型Stuff::Vectord存在,但它不是生成的单例方法测试的返回类型。查看生成的C包装器文件,我可以看到类Vectord及其方法已定义,但查看_wrap_test_get我没有看到任何返回sth类St

ruby - 你检查你的 rvmrc 文件吗?

Ruby版本管理器允许我们在每个项目中使用.rvmrc文件来设置要加载的ruby​​版本和gem集。是否应该将此文件checkin源代码管理?还是这对其他开发人员的工作环境有过多的假设? 最佳答案 源代码控制管理主要是关于可再现性:您是否能够根据存储在SCM中的内容来再现开发工作的版本?如果项目中的任何开发人员都需要那个.rvmrc文件才能工作(使用正确的工件),那么是的,您应该对其进行版本控制。如RVMBestPractices中所述:No.2-Checkyourrvmrcintosourcecontrol.Bycheckingt

Ruby:如果更改了文件,则再次需要一个文件

我写了一个在config/中查找配置文件的gem。这工作正常,但如果用户更改任何配置,他们必须停止程序并在我的gem加载新配置之前重新启动它。这将要求他们在每次更改时重新启动整个Rails应用程序,这并不理想。有没有办法“重新要求”一个文件,以便它重新加载它而不是使用缓存的版本。 最佳答案 您可以使用load代替require。这将加载文件,而不管它之前是否已经加载过。请注意,对于load,您需要指定.rb扩展名,它对于require是可选的。所以require"path/to/myconfig"变成了load"path/to/my